package cn.edu.jnu.basicms.common;

import lombok.Data;

@Data
public class Result<T> {
    private Integer code;  // 状态码（200成功，500失败）
    private String msg;
    private T data;

    // 成功方法（无数据）
    public static Result success() {
        Result result = new Result();
        result.setCode(200);
        result.setMsg("请求成功");
        return result;
    }

    // 成功方法（带数据）
    public static <T> Result<T> success(T data) {
        Result<T> result = new cn.edu.jnu.basicms.common.Result<T>();
        result.setCode(200);
        result.setMsg("请求成功");
        result.setData(data);
        return result;
    }

    // 成功方法（带消息和数据）
    public static <T> Result<T> success(String msg, T data) {
        Result<T> result = (Result<T>) new Result<>();
        result.setCode(200);
        result.setMsg(msg);
        result.setData(data);
        return result;
    }

    // 失败方法
    public static Result error(String msg) {
        Result result = new Result();
        result.setCode(500);
        result.setMsg(msg);
        return result;
    }
}